/*
 * Raptor.h
 *
 *  Created on: 14-01-2010
 *      Author: FO3512
 */

#ifndef RAPTOR_H_
#define RAPTOR_H_

#define getBaseObj(index) (&baseObjects[(index)])

#define IO_BASE 0xFE00u
#define IO_STDIN_S 0x0
#define IO_STDIN_D 0x2
#define IO_STDOUT_S 0x4
#define IO_STDOUT_D 0x6
#define IO_SW_D 0xA
#define IO_BTN_D 0xE
#define IO_SSEG_D 0x12
#define IO_LED_D 0x16
#define IO_PS2KBD_D 0x1A
#define IO_MSTIMER_D 0x1C
#define IO_TSTIMER_D 0x1D // counts every half minut
// VGA
#define VGA_ID 0x0140u
#define VGA_X 0x0180u
#define VGA_Y 0x01C0u

// this should be 64
// Raptor is always last object!
#define OBJECT_COUNT 64

#define SCREEN_LEFT 65
#define SCREEN_RIGHT 705
#define SCREEN_TOP 65
#define SCREEN_BOTTOM 542

// address offset for objects
#define EXPLOSION_ADDR_START 63
#define EXPLOSION_ADDR_END 58
#define RAPTOR_ADDR 57
#define HELICOPTER_ADDR_START 56
#define HELICOPTER_ADDR_END 49
#define MIG_ADDR_START 48
#define MIG_ADDR_END 41
#define MISSILE_ADDR_START 40
#define MISSILE_ADDR_END 31
#define BULLET_ADDR_START 30
#define BULLET_ADDR_END 1
#define AID_ADDR_START 0
#define AID_ADDR_END 0


#define EXPLOSION_IMG_WIDTH 64
#define EXPLOSION_IMG_HEIGHT 64
#define RAPTOR_IMG_WIDTH 64
#define RAPTOR_IMG_HEIGHT 64
#define HELICOPTER_IMG_WIDTH 64
#define HELICOPTER_IMG_HEIGHT 64
#define MIG_IMG_WIDTH 64
#define MIG_IMG_HEIGHT 64
#define MISSILE_IMG_WIDTH 28
#define MISSILE_IMG_HEIGHT 28
#define BULLET_IMG_WIDTH 6
#define BULLET_IMG_HEIGHT 6
#define AID_IMG_WIDTH 32
#define AID_IMG_HEIGHT 32


#define COLLISIONTEST_INTERVAL 5; // ms between collision test
#define OBJECTCREATE_INTERVAL_MIN 500; // ms between creating objects
#define OBJECTCREATE_INTERVAL_MAX 1000;
#define DIFFICULTY_LEVEL_INTERVAL 25000; // ms between increasing difficulty



#endif /* RAPTOR_H_ */
